package com.unknowpupil.design.relation;

import java.util.List;

/**
 * @Description: 聚合(Aggregation)
 * <p>
 *     聚合关系，是关联关系的一种，是强的关联关系。
 *     聚合是整体和个体之间的关系。
 *     例如，汽车类与引擎类、轮胎类，以及其它的零件类之间的关系便整体和个体的关系。与关联关系一样，聚合关系也是通过实例变量实现的。
 *     但是关联关系所涉及的两个类是处在同一层次上的，而在聚合关系中，两个类是处在不平等层次上的，一个代表整体，另一个代表部分。
 *
 *     聚合关系可以用带空心菱形的实线来表示，菱形指向整体
 * </p>
 * @Author: <a> w10g </a>
 * @CreateDate: Create in 2020/4/24 11:38
 * @Classname: AggregationSchema
 * @Version: 1.0
 */
public class SchemaAggregation {
    // 汽车
    class Car{
        // 汽车可以有发动机, 但是不确定什么时候赋予
        private Enginemy engine;
    }
    // 发动机
    class Enginemy{

    }

    /**
     * =========另一种方式
     * =======
     * ====
     *  聚合关系（Aggregation）
     * • 聚合关系(Aggregation) 表示一个整体与部分的关系。
     * 通常在定义一个整体类后，再去分析这个整体类的组成结构，从而找出一些成员类，该整体类和成员类之间就形成了聚合 关系。
     * • 在聚合关系中，成员类是整体类的一部分，即成员对象是整体对象的一部分，但是成员对象可以脱离整体对象独立存在。
     * 在UML中，
     * 聚合关系用带空心菱形的直线表示。
     *
     * */

    public class Student{
    }
    public class School{
        private List<Student> students ;  //学校与学生是聚合关系
    }

}

